#include <iostream>
#include <vector>
using namespace std;
vector<string> a;
vector<int> flag(25, 0);
int ans = -1;    
int n;
void dfs(const string& s) {
    ans = max(ans, (int)s.size());
    for(int i = 0; i < n; i++) {
        if(flag[i] >= 2) {
            continue;
        }
        for(int j = 1; j < min(s.size(), a[i].size()); j++) {
            if(s.substr(s.size() - j) == a[i].substr(0, j)) {
                flag[i]++;
                dfs(s + a[i].substr(j));
                flag[i]--;
            }
        }
    }
}
int main() {
    cin >> n;
    for(int i = 0; i < n; i++) {
        string s;
        cin >> s;
        a.push_back(s);
    }
    char c;
    cin >> c;
    for(int i = 0; i < n; i++) {
        if(a[i][0] == c) {
            flag[i] += 1;
            dfs(a[i]);
            flag[i] -= 1;
        }
    }
    cout << ans << endl;
    return 0;
}